/*
* 封装 premise请求
*
* url: 接口地址
* data:请求数据
* type 方法
*
* */
export default async(path,url,data,type)=>{
  type = type.toUpperCase();
  path = path + url;
  //判断 get 请求 get将数据拼接在url后传递
  if(type == "GET"){
    let dataStr = '';
    Object.keys(data).forEach((key)=>{
      dataStr = key + '=' + data[key] +'&'
    });
    if(dataStr !== ''){
      dataStr = dataStr.substr(0,dataStr.lastIndexOf('&'));
      path = path + "?" + dataStr;
    }
  }

  let pro =  new Promise((resole,reject)=>{
      let requestObj;   //兼容ajax的对象 ie 用activeXObject 其他XMLHttpRequest()
      if(window.XMLHttpRequest){
          requestObj = new XMLHttpRequest()
      }else{
          requestObj = new ActiveXObject
      }
      let sendData = '';
      ///  判断若type为post 则请求的数组需在send的中发送
      if(type == 'POST'){
        sendData = JSON.stringify(data)
      }
      //初始化 HTTP 请求参数，例如 URL 和 HTTP 方法，但是并不发送请求。
      requestObj.open(type,path,true);
      //向一个打开但未发送的请求设置或添加一个 HTTP 请求。
      requestObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      //发送 HTTP 请求，使用传递给 open() 方法的参数，以及传递给该方法的可选请求体。
      requestObj.send(sendData)   //发送请求数据

      //发送请求
      requestObj.onreadystatechange = ()=>{
        if(requestObj.readyState == 4){ // 返回数据
          if(requestObj.state == 200){ //请求成功
            let obj = requestObj.response;    //获取返回的数据
            if (typeof obj !== 'object') {
              obj = JSON.parse(obj);    //转化成json对象
            }
            resole(obj)    //成功返回
          }else{
            reject(requestObj)  //失败返回
          }
        }
      }

  });
  return pro
}




/**
 * 请求公用方法
 * {
* url: 接口地址
* data: 传递数据
* type: 请求方法
* success: 成功方法
* error: 失败方法
* }
 */
/*
import axios from 'axios';
Vue.prototype.$axios = ({url, type, data, success, error}) => {
  if(data) {
    data.token = sessionStorage.token;
    data.org_id = sessionStorage.org_id || 0;
  } else {
    data = {};
    data.token = sessionStorage.token;
    data.org_id = sessionStorage.org_id || 0;
  }
  if(document.getElementById('loading')) {
    document.getElementById('loading').style.display = 'block';
  }
  if(type.toLowerCase() == 'post') {
    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    axios({
      url: conhead.HOST + url,
      method: 'post',
      data: data,
      transformRequest: [function (data) {
        let ret = ''
        for (let it in data) {
          ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
        }
        ret = ret.substr(0, ret.length-1);
        return ret
      }]
    }).then((data) => {
      if (document.getElementById('loading')) {
        var timeout = setTimeout(() => {
          document.getElementById('loading').style.display = 'none';
          clearTimeout(timeout);
        }, 300);
      }
      if(data.data.code == '401') {
// token失效, 需要跳转重新登录;
        var a = window.location.href;
        a = a.split('#')[0];
        window.location.href = a + '#/';
        return;
      }
      success(data);
    }).catch(function (err) {
// error(err);
    });
  } else if(type.toLowerCase() == 'get') {
    axios.get(conhead.HOST + url, {
      params: data
    }).then((data) => {
      if(document.getElementById('loading')) {
        var timeout = setTimeout(() => {
          document.getElementById('loading').style.display = 'none';
          clearTimeout(timeout);
        }, 300);
      }
      if(data.data.code == '401') {
// token失效, 需要跳转重新登录;
        var a = window.location.href;
        a = a.split('#')[0];
        window.location.href = a + '#/';
        return;
      }
      success(data);
    }).catch(function (err) {
// error(err);
    });
  }
}
写到main.js里的, 可以直接用this.axios调取, 类似jq的ajax方法*/
